# -*- coding: utf-8 -*-
# 如果你的程序（包括注释）中包含中文，请加上上面这一行，用于指明编码（utf-8）。
# #号开头的行都是注释。

# 如何编辑本程序：
#     用任何文本编辑器均可编辑。

# 如何运行本程序：
#     在终端中，运行：python p303_parameters.py

def swap(a, b):
    a,b = b,a
    print("In swap(): a = ", a, " b = ", b)

a = 3
b = 7
print("Before swap(): a = ", a, " b = ", b)
swap(a, b)
print("After swap(): a = ", a, " b = ", b)


def swap(dw):
    dw['a'], dw['b'] = dw['b'], dw['a']
    print("In swap(): a = ", dw['a'], " b = ", dw['b'])

dw = { 'a':5, 'b':8 }
print("Before swap(): a = ", dw['a'], " b = ", dw['b'])
swap(dw)
print("After swap(): a = ", dw['a'], " b = ", dw['b'])


# 注：
# （1）Python函数的参数传递机制是 值传递。
# （2）如果需要让函数修改某些数据，则可以通过把这些数据
#      包装成列表、字典等可变对象进行传递。






